import base64
import pickle

# 需求1： 把d1变成一个密文的字符串
# 1. 准备了一个需要序列化的字典
d1 = {'name': 'canglaoshi', 'desc': 'good teacher'}
# 2. 通过pickle模板把 d1 变成一个 不能被解码成字符串的二进制的数据
d1_bytes_can_not_decode_to_str =  pickle.dumps(d1)
print(d1_bytes_can_not_decode_to_str)  # b'\x80\x04\x95/\x00\x00\x00'
# 3. 通过base64模块把   不能被解码成字符串的二进制的数据  转换成  可以解码成字符串的二进制的数据
d1_bytes_base64 = base64.b64encode(d1_bytes_can_not_decode_to_str)
print(d1_bytes_base64)
# 4. 把 可以解码成字符串的二进制的数据 解码成字符串
d1_str = d1_bytes_base64.decode()
print(d1_str)


# 需求2: 通过密文的字符还原得到上面的字典
# 1. 准备了一个加密的字符串
d1_str = 'gASVLwAAAAAAAAB9lCiMBG5hbWWUjApjYW5nbGFvc2hplIwEZGVzY5SMDGdvb2QgdGVhY2hlcpR1Lg=='
# 2. 编码成base64二进制的数据
d1_bytes_base64 = d1_str.encode()
print(d1_bytes_base64)
# 3. 通过base64模块把   成base64二进制的数据   转换成  pickle二进制数据
d1_bytes_pickle =base64.b64decode(d1_bytes_base64)
print(d1_bytes_pickle)
# 4. 通过pickle模板把 不能被解码成字符串的二进制的数据  变回 d1
d1 = pickle.loads(d1_bytes_pickle)
print(d1)




